/**
 * Universidad del Valle de Guatemala
 * Algoritmos y Estructura de Datos
 * Sección 10
 * Carlos Alberto Solórzano Pineda (08832)
 * 06 de septiembre de 2011
 * @author carlos
 * @version 1.2
 * @param <E>
 * Clase que emula una cola circular
 */

public class CircularQueue<E> extends AbstractQueue<E>{
	
	// Parámetros
	public CircularList<E> data;
	
	/**
	 * Constructor predefinido
	 */
	public CircularQueue(){
		data = new CircularList<E>();
	}
	
	/**
	 * 
	 */
	public boolean add(E value) throws Exception{
		try{
			data.addLast(value);
		}catch(Exception e){
			
		}
		return true;
	}
	
	/**
	 * 
	 */
	public E peek(){
		if(!data.isEmpty()){
			return data.peek();
		}else{
			return null;
		}
	}
	
	/**
	 * 
	 */
	public E remove(){
		if(!data.isEmpty()){
			return data.removeFirst();
		}else{
			return null;
		}
	}
	
	/**
	 * 
	 */
	public int size(){
		return data.size();
	}
}
